<!doctype html>
<html>
<head>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>

<style type='text/css'>html {overflow-x: initial !important;}:root { --bg-color:#ffffff; --text-color:#333333; --select-text-bg-color:#B5D6FC; --select-text-font-color:auto; --monospace:"Lucida Console",Consolas,"Courier",monospace; --title-bar-height:20px; }
.mac-os-11 { --title-bar-height:28px; }
html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
body { margin: 0px; padding: 0px; height: auto; inset: 0px; font-size: 1rem; line-height: 1.42857; overflow-x: hidden; background: inherit; tab-size: 4; }
iframe { margin: auto; }
a.url { word-break: break-all; }
a:active, a:hover { outline: 0px; }
.in-text-selection, ::selection { text-shadow: none; background: var(--select-text-bg-color); color: var(--select-text-font-color); }
#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; overflow-wrap: break-word; position: relative; white-space: normal; overflow-x: visible; padding-top: 36px; }
#write.first-line-indent p { text-indent: 2em; }
#write.first-line-indent li p, #write.first-line-indent p * { text-indent: 0px; }
#write.first-line-indent li { margin-left: 2em; }
.for-image #write { padding-left: 8px; padding-right: 8px; }
body.typora-export { padding-left: 30px; padding-right: 30px; }
.typora-export .footnote-line, .typora-export li, .typora-export p { white-space: pre-wrap; }
.typora-export .task-list-item input { pointer-events: none; }
@media screen and (max-width: 500px) {
  body.typora-export { padding-left: 0px; padding-right: 0px; }
  #write { padding-left: 20px; padding-right: 20px; }
  .CodeMirror-sizer { margin-left: 0px !important; }
  .CodeMirror-gutters { display: none !important; }
}
#write li > figure:last-child { margin-bottom: 0.5rem; }
#write ol, #write ul { position: relative; }
img { max-width: 100%; vertical-align: middle; image-orientation: from-image; }
button, input, select, textarea { color: inherit; font: inherit; }
input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
*, ::after, ::before { box-sizing: border-box; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p, #write pre { width: inherit; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p { position: relative; }
p { line-height: inherit; }
h1, h2, h3, h4, h5, h6 { break-after: avoid-page; break-inside: avoid; orphans: 4; }
p { orphans: 4; }
h1 { font-size: 2rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.6rem; }
h4 { font-size: 1.4rem; }
h5 { font-size: 1.2rem; }
h6 { font-size: 1rem; }
.md-math-block, .md-rawblock, h1, h2, h3, h4, h5, h6, p { margin-top: 1rem; margin-bottom: 1rem; }
.hidden { display: none; }
.md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic; }
a { cursor: pointer; }
sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; cursor: pointer; }
sup.md-footnote a, sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit; }
#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; }
figure { overflow-x: auto; margin: 1.2em 0px; max-width: calc(100% + 16px); padding: 0px; }
figure > table { margin: 0px; }
tr { break-inside: avoid; break-after: auto; }
thead { display: table-header-group; }
table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; }
table.md-table td { min-width: 32px; }
.CodeMirror-gutters { border-right: 0px; background-color: inherit; }
.CodeMirror-linenumber { user-select: none; }
.CodeMirror { text-align: left; }
.CodeMirror-placeholder { opacity: 0.3; }
.CodeMirror pre { padding: 0px 4px; }
.CodeMirror-lines { padding: 0px; }
div.hr:focus { cursor: none; }
#write pre { white-space: pre-wrap; }
#write.fences-no-line-wrapping pre { white-space: pre; }
#write pre.ty-contain-cm { white-space: normal; }
.CodeMirror-gutters { margin-right: 4px; }
.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background: inherit; position: relative !important; }
.md-fences-adv-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
#write .md-fences.mock-cm { white-space: pre-wrap; }
.md-fences.md-fences-with-lineno { padding-left: 0px; }
#write.fences-no-line-wrapping .md-fences.mock-cm { white-space: pre; overflow-x: auto; }
.md-fences.mock-cm.md-fences-with-lineno { padding-left: 8px; }
.CodeMirror-line, twitterwidget { break-inside: avoid; }
.footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em; }
.footnotes + .footnotes { margin-top: 0px; }
.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background: 0px 0px; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; -webkit-tap-highlight-color: transparent; line-height: normal; font-weight: 400; text-align: left; box-sizing: content-box; direction: ltr; }
li div { padding-top: 0px; }
blockquote { margin: 1rem 0px; }
li .mathjax-block, li p { margin: 0.5rem 0px; }
li blockquote { margin: 1rem 0px; }
li { margin: 0px; position: relative; }
blockquote > :last-child { margin-bottom: 0px; }
blockquote > :first-child, li > :first-child { margin-top: 0px; }
.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal; }
#write .footnote-line { white-space: pre-wrap; }
@media print {
  body, html { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; font-variant-ligatures: no-common-ligatures; }
  #write { margin-top: 0px; padding-top: 0px; border-color: transparent !important; }
  .typora-export * { -webkit-print-color-adjust: exact; }
  .typora-export #write { break-after: avoid; }
  .typora-export #write::after { height: 0px; }
  .is-mac table { break-inside: avoid; }
  .typora-export-show-outline .typora-export-sidebar { display: none; }
}
.footnote-line { margin-top: 0.714em; font-size: 0.7em; }
a img, img a { cursor: pointer; }
pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background: rgb(204, 204, 204); display: block; overflow-x: hidden; }
p > .md-image:only-child:not(.md-img-error) img, p > img:only-child { display: block; margin: auto; }
#write.first-line-indent p > .md-image:only-child:not(.md-img-error) img { left: -2em; position: relative; }
p > .md-image:only-child { display: inline-block; width: 100%; }
#write .MathJax_Display { margin: 0.8em 0px 0px; }
.md-math-block { width: 100%; }
.md-math-block:not(:empty)::after { display: none; }
.MathJax_ref { fill: currentcolor; }
[contenteditable="true"]:active, [contenteditable="true"]:focus, [contenteditable="false"]:active, [contenteditable="false"]:focus { outline: 0px; box-shadow: none; }
.md-task-list-item { position: relative; list-style-type: none; }
.task-list-item.md-task-list-item { padding-left: 0px; }
.md-task-list-item > input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px); border: none; }
.math { font-size: 1rem; }
.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; }
.md-toc-content { position: relative; margin-left: 0px; }
.md-toc-content::after, .md-toc::after { display: none; }
.md-toc-item { display: block; color: rgb(65, 131, 196); }
.md-toc-item a { text-decoration: none; }
.md-toc-inner:hover { text-decoration: underline; }
.md-toc-inner { display: inline-block; cursor: pointer; }
.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700; }
.md-toc-h2 .md-toc-inner { margin-left: 2em; }
.md-toc-h3 .md-toc-inner { margin-left: 4em; }
.md-toc-h4 .md-toc-inner { margin-left: 6em; }
.md-toc-h5 .md-toc-inner { margin-left: 8em; }
.md-toc-h6 .md-toc-inner { margin-left: 10em; }
@media screen and (max-width: 48em) {
  .md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
  .md-toc-h4 .md-toc-inner { margin-left: 5em; }
  .md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
  .md-toc-h6 .md-toc-inner { margin-left: 8em; }
}
a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
.footnote-line a:not(.reversefootnote) { color: inherit; }
.md-attr { display: none; }
.md-fn-count::after { content: "."; }
code, pre, samp, tt { font-family: var(--monospace); }
kbd { margin: 0px 0.1em; padding: 0.1em 0.6em; font-size: 0.8em; color: rgb(36, 39, 41); background: rgb(255, 255, 255); border: 1px solid rgb(173, 179, 185); border-radius: 3px; box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px, rgb(255, 255, 255) 0px 0px 0px 2px inset; white-space: nowrap; vertical-align: middle; }
.md-comment { color: rgb(162, 127, 3); opacity: 0.6; font-family: var(--monospace); }
code { text-align: left; vertical-align: initial; }
a.md-print-anchor { white-space: pre !important; border-width: initial !important; border-style: none !important; border-color: initial !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: 0px !important; background: 0px 0px !important; text-decoration: initial !important; text-shadow: initial !important; }
.os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif; }
.md-diagram-panel > svg { max-width: 100%; }
[lang="flow"] svg, [lang="mermaid"] svg { max-width: 100%; height: auto; }
[lang="mermaid"] .node text { font-size: 1rem; }
table tr th { border-bottom: 0px; }
video { max-width: 100%; display: block; margin: 0px auto; }
iframe { max-width: 100%; width: 100%; border: none; }
.highlight td, .highlight tr { border: 0px; }
mark { background: rgb(255, 255, 0); color: rgb(0, 0, 0); }
.md-html-inline .md-plain, .md-html-inline strong, mark .md-inline-math, mark strong { color: inherit; }
.md-expand mark .md-meta { opacity: 0.3 !important; }
mark .md-meta { color: rgb(0, 0, 0); }
@media print {
  .typora-export h1, .typora-export h2, .typora-export h3, .typora-export h4, .typora-export h5, .typora-export h6 { break-inside: avoid; }
}
.md-diagram-panel .messageText { stroke: none !important; }
.md-diagram-panel .start-state { fill: var(--node-fill); }
.md-diagram-panel .edgeLabel rect { opacity: 1 !important; }
.md-fences.md-fences-math { font-size: 1em; }
.md-fences-advanced:not(.md-focus) { padding: 0px; white-space: nowrap; border: 0px; }
.md-fences-advanced:not(.md-focus) { background: inherit; }
.typora-export-show-outline .typora-export-content { max-width: 1440px; margin: auto; display: flex; flex-direction: row; }
.typora-export-sidebar { width: 300px; font-size: 0.8rem; margin-top: 80px; margin-right: 18px; }
.typora-export-show-outline #write { --webkit-flex:2; flex: 2 1 0%; }
.typora-export-sidebar .outline-content { position: fixed; top: 0px; max-height: 100%; overflow: hidden auto; padding-bottom: 30px; padding-top: 60px; width: 300px; }
@media screen and (max-width: 1024px) {
  .typora-export-sidebar, .typora-export-sidebar .outline-content { width: 240px; }
}
@media screen and (max-width: 800px) {
  .typora-export-sidebar { display: none; }
}
.outline-content li, .outline-content ul { margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; list-style: none; }
.outline-content ul { margin-top: 0px; margin-bottom: 0px; }
.outline-content strong { font-weight: 400; }
.outline-expander { width: 1rem; height: 1.42857rem; position: relative; display: table-cell; vertical-align: middle; cursor: pointer; padding-left: 4px; }
.outline-expander::before { content: ""; position: relative; font-family: Ionicons; display: inline-block; font-size: 8px; vertical-align: middle; }
.outline-item { padding-top: 3px; padding-bottom: 3px; cursor: pointer; }
.outline-expander:hover::before { content: ""; }
.outline-h1 > .outline-item { padding-left: 0px; }
.outline-h2 > .outline-item { padding-left: 1em; }
.outline-h3 > .outline-item { padding-left: 2em; }
.outline-h4 > .outline-item { padding-left: 3em; }
.outline-h5 > .outline-item { padding-left: 4em; }
.outline-h6 > .outline-item { padding-left: 5em; }
.outline-label { cursor: pointer; display: table-cell; vertical-align: middle; text-decoration: none; color: inherit; }
.outline-label:hover { text-decoration: underline; }
.outline-item:hover { border-color: rgb(245, 245, 245); background-color: var(--item-hover-bg-color); }
.outline-item:hover { margin-left: -28px; margin-right: -28px; border-left: 28px solid transparent; border-right: 28px solid transparent; }
.outline-item-single .outline-expander::before, .outline-item-single .outline-expander:hover::before { display: none; }
.outline-item-open > .outline-item > .outline-expander::before { content: ""; }
.outline-children { display: none; }
.info-panel-tab-wrapper { display: none; }
.outline-item-open > .outline-children { display: block; }
.typora-export .outline-item { padding-top: 1px; padding-bottom: 1px; }
.typora-export .outline-item:hover { margin-right: -8px; border-right: 8px solid transparent; }
.typora-export .outline-expander::before { content: "+"; font-family: inherit; top: -1px; }
.typora-export .outline-expander:hover::before, .typora-export .outline-item-open > .outline-item > .outline-expander::before { content: "−"; }
.typora-export-collapse-outline .outline-children { display: none; }
.typora-export-collapse-outline .outline-item-open > .outline-children, .typora-export-no-collapse-outline .outline-children { display: block; }
.typora-export-no-collapse-outline .outline-expander::before { content: "" !important; }
.typora-export-show-outline .outline-item-active > .outline-item .outline-label { font-weight: 700; }
.md-inline-math-container mjx-container { zoom: 0.95; }


.CodeMirror { height: auto; }
.CodeMirror.cm-s-inner { background: inherit; }
.CodeMirror-scroll { overflow: auto hidden; z-index: 3; }
.CodeMirror-gutter-filler, .CodeMirror-scrollbar-filler { background-color: rgb(255, 255, 255); }
.CodeMirror-gutters { border-right: 1px solid rgb(221, 221, 221); background: inherit; white-space: nowrap; }
.CodeMirror-linenumber { padding: 0px 3px 0px 5px; text-align: right; color: rgb(153, 153, 153); }
.cm-s-inner .cm-keyword { color: rgb(119, 0, 136); }
.cm-s-inner .cm-atom, .cm-s-inner.cm-atom { color: rgb(34, 17, 153); }
.cm-s-inner .cm-number { color: rgb(17, 102, 68); }
.cm-s-inner .cm-def { color: rgb(0, 0, 255); }
.cm-s-inner .cm-variable { color: rgb(0, 0, 0); }
.cm-s-inner .cm-variable-2 { color: rgb(0, 85, 170); }
.cm-s-inner .cm-variable-3 { color: rgb(0, 136, 85); }
.cm-s-inner .cm-string { color: rgb(170, 17, 17); }
.cm-s-inner .cm-property { color: rgb(0, 0, 0); }
.cm-s-inner .cm-operator { color: rgb(152, 26, 26); }
.cm-s-inner .cm-comment, .cm-s-inner.cm-comment { color: rgb(170, 85, 0); }
.cm-s-inner .cm-string-2 { color: rgb(255, 85, 0); }
.cm-s-inner .cm-meta { color: rgb(85, 85, 85); }
.cm-s-inner .cm-qualifier { color: rgb(85, 85, 85); }
.cm-s-inner .cm-builtin { color: rgb(51, 0, 170); }
.cm-s-inner .cm-bracket { color: rgb(153, 153, 119); }
.cm-s-inner .cm-tag { color: rgb(17, 119, 0); }
.cm-s-inner .cm-attribute { color: rgb(0, 0, 204); }
.cm-s-inner .cm-header, .cm-s-inner.cm-header { color: rgb(0, 0, 255); }
.cm-s-inner .cm-quote, .cm-s-inner.cm-quote { color: rgb(0, 153, 0); }
.cm-s-inner .cm-hr, .cm-s-inner.cm-hr { color: rgb(153, 153, 153); }
.cm-s-inner .cm-link, .cm-s-inner.cm-link { color: rgb(0, 0, 204); }
.cm-negative { color: rgb(221, 68, 68); }
.cm-positive { color: rgb(34, 153, 34); }
.cm-header, .cm-strong { font-weight: 700; }
.cm-del { text-decoration: line-through; }
.cm-em { font-style: italic; }
.cm-link { text-decoration: underline; }
.cm-error { color: red; }
.cm-invalidchar { color: red; }
.cm-constant { color: rgb(38, 139, 210); }
.cm-defined { color: rgb(181, 137, 0); }
div.CodeMirror span.CodeMirror-matchingbracket { color: rgb(0, 255, 0); }
div.CodeMirror span.CodeMirror-nonmatchingbracket { color: rgb(255, 34, 34); }
.cm-s-inner .CodeMirror-activeline-background { background: inherit; }
.CodeMirror { position: relative; overflow: hidden; }
.CodeMirror-scroll { height: 100%; outline: 0px; position: relative; box-sizing: content-box; background: inherit; }
.CodeMirror-sizer { position: relative; }
.CodeMirror-gutter-filler, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-vscrollbar { position: absolute; z-index: 6; display: none; outline: 0px; }
.CodeMirror-vscrollbar { right: 0px; top: 0px; overflow: hidden; }
.CodeMirror-hscrollbar { bottom: 0px; left: 0px; overflow: auto hidden; }
.CodeMirror-scrollbar-filler { right: 0px; bottom: 0px; }
.CodeMirror-gutter-filler { left: 0px; bottom: 0px; }
.CodeMirror-gutters { position: absolute; left: 0px; top: 0px; padding-bottom: 10px; z-index: 3; overflow-y: hidden; }
.CodeMirror-gutter { white-space: normal; height: 100%; box-sizing: content-box; padding-bottom: 30px; margin-bottom: -32px; display: inline-block; }
.CodeMirror-gutter-wrapper { position: absolute; z-index: 4; background: 0px 0px !important; border: none !important; }
.CodeMirror-gutter-background { position: absolute; top: 0px; bottom: 0px; z-index: 4; }
.CodeMirror-gutter-elt { position: absolute; cursor: default; z-index: 4; }
.CodeMirror-lines { cursor: text; }
.CodeMirror pre { border-radius: 0px; border-width: 0px; background: 0px 0px; font-family: inherit; font-size: inherit; margin: 0px; white-space: pre; overflow-wrap: normal; color: inherit; z-index: 2; position: relative; overflow: visible; }
.CodeMirror-wrap pre { overflow-wrap: break-word; white-space: pre-wrap; word-break: normal; }
.CodeMirror-code pre { border-right: 30px solid transparent; width: fit-content; }
.CodeMirror-wrap .CodeMirror-code pre { border-right: none; width: auto; }
.CodeMirror-linebackground { position: absolute; inset: 0px; z-index: 0; }
.CodeMirror-linewidget { position: relative; z-index: 2; overflow: auto; }
.CodeMirror-wrap .CodeMirror-scroll { overflow-x: hidden; }
.CodeMirror-measure { position: absolute; width: 100%; height: 0px; overflow: hidden; visibility: hidden; }
.CodeMirror-measure pre { position: static; }
.CodeMirror div.CodeMirror-cursor { position: absolute; visibility: hidden; border-right: none; width: 0px; }
.CodeMirror div.CodeMirror-cursor { visibility: hidden; }
.CodeMirror-focused div.CodeMirror-cursor { visibility: inherit; }
.cm-searching { background: rgba(255, 255, 0, 0.4); }
span.cm-underlined { text-decoration: underline; }
span.cm-strikethrough { text-decoration: line-through; }
.cm-tw-syntaxerror { color: rgb(255, 255, 255); background-color: rgb(153, 0, 0); }
.cm-tw-deleted { text-decoration: line-through; }
.cm-tw-header5 { font-weight: 700; }
.cm-tw-listitem:first-child { padding-left: 10px; }
.cm-tw-box { border-style: solid; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-color: inherit; border-top-width: 0px !important; }
.cm-tw-underline { text-decoration: underline; }
@media print {
  .CodeMirror div.CodeMirror-cursor { visibility: hidden; }
}






:root {
  --title-color: #8064a9;
  --text-color: #444444;
  --light-text-color: #666666;
  --link-color: #2aa899;
  --code-color: #745fb5;

  --shadow-color: #eee;
  --purple-light: rgba(116, 95, 181, 0.2);
  --border: #e7e7e7;
  --shadow: 3px 3px 10px var(--shadow-color);

  --side-bar-bg-color: #fafafa;
  --control-text-color: var(var(--light-text-color));
  --active-file-text-color: var(--title-color);
  --active-file-bg-color: var(--shadow-color);
  --item-hover-bg-color: var(--shadow-color);
  --active-file-border-color: var(var(--title-color));

  --base-font: "Helvetica Neue", "Noto Sans", -apple-system, Ubuntu,
    "Microsoft YaHei", Helvetica, "Nimbus Sans L", Arial, "Liberation Sans",
    "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC",
    "Source Han Sans CN", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", "ST Heiti",
    SimHei, "WenQuanYi Zen Hei Sharp", "Source Sans Pro", sans-serif;
  --title-font: "EB Garamond", Georgia, "Noto Serif", "Noto Serif CJK SC",
    "Nimbus Roman No9 L", "Songti SC", "Source Han Serif SC",
    "Source Han Serif CN", STSong, "AR PL New Sung", "AR PL SungtiL GB", NSimSun,
    SimSun, "TW\-Sung", "WenQuanYi Bitmap Song", "AR PL UMing CN",
    "AR PL UMing HK", "AR PL UMing TW", "AR PL UMing TW MBE", PMingLiU, MingLiU,
    "Ubuntu", "Source Sans Pro", serif;
  --monospace: "JetBrains Mono", "Fira Code", "Cascadia Code", "Sarasa Term SC",
    Monaco, "Deja Vu Sans Mono", Consolas, "Lucida Console", "Andale Mono",
    "Roboto Mono", Courier, Monospace !important;
}

/*段落字体大小*/
.md-p{
    font-size: 20px;
}

/*.md-plain{*/
/*  font-size: 200px;*/
/*}*/

/*加粗字体*/
strong{
  color:#745fb5;
}

em{
  font-size: 15px;
}

/* 打印 */
@media print {
  html {
    font-size: 0.9rem;
  }

  table,
  pre {
    page-break-inside: avoid;
  }

  pre {
    word-wrap: break-word;
  }
  #write {
    max-width: 100%;
  }
  @page {
    size: A3; /* PDF output size */
    margin-left: 0;
    margin-right: 0;
  }
}

html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-rendering: optimizelegibility;
  -webkit-font-smoothing: initial;
}

body {
  color: var(--text-color);
  -webkit-font-smoothing: antialiased;
  line-height: 1.6rem;
  letter-spacing: 0;
  overflow-x: hidden;
}

/* 页边距 和 页面大小 */
#write {
  font-family: var(--base-font);
  /* max-width: 914px; */
  margin: 0 auto;
  padding: 1rem 4rem;
  padding-bottom: 100px;
}

#write p {
  line-height: 1.6rem;
  word-spacing: 0.05rem;
}

body > *:first-child {
  margin-top: 0 !important;
}

body > *:last-child {
  margin-bottom: 0 !important;
}

a {
  color: var(--link-color);
  text-decoration: none;
}
#write a {
  border-bottom: none;
}
#write a:hover {
  border-bottom: 1px solid var(--link-color);
  color: var(--link-color);
  text-decoration: none;
}
.md-content {
  color: var(--light-text-color);
}

.on-focus-mode blockquote {
  border-left-color: #777;
}

/*blockquote {*/
/*  font-weight: bold;*/
/*  border-left: 0px solid #42b983;*/

/*  !*#42b983;*!*/
/*  padding: 10px 15px;*/
/*  color: #42b983;*/
/*  !*#42b983;*!*/
/*  !*#777;*!*/
/*  background-color: rgba(127, 100, 169, .2);*/
/*  !*rgba(66, 185, 131, .1);*!*/
/*}*/

blockquote {
  color: #66a;
  /*font-weight: bold;*/
  /*font-style: italic;*/
  /*margin: 1em 3em;*/
  /*padding-left: 1em;*/
  /*border-left: 5px solid #fce27c; }*/
  /*background-color: rgba(127, 100, 169, .3);*/
  /*background-color: rgba(28, 28, 28, .1);*/
  background-color: rgba(0, 0, 0, .11);
  /*border-left: 5px solid #8064a9; }*/
  /*color: #42b983;*/
  color: #000000;
/*rgba(66, 185, 131, .1);*/
}
/*blockquote p:before {*/
/*  content: '"'; }*/
blockquote:before {
  content: '✏️'; }
/*blockquote p:after {*/
/*  content: '"'; }*/

h1,
h2,
h3,
h4,
h5,
h6 {
  position: relative;
  margin-top: 2rem;
  margin-bottom: 1rem;
  font-weight: bold;
  line-height: 1.3;
  cursor: text;
  color: var(--title-color);
  font-family: var(--title-font);
}

h1 {
  text-align: center;
  font-size: 3em;
  font-weight:bold;
  background: url('file:///C://Users//a7810//AppData//Roaming//Typora/themes/logo.png') no-repeat right top;
  background-size: 200px 60px;
  border-bottom: 2px solid var(--title-color);
}
/*#write h1{*/
/*	border-bottom: 2px solid var(--title-color);*/
/*	background: url('file:///C://Users//a7810//AppData//Roaming//Typora/themes/logo.png') no-repeat right bottom;*/
/*	background-size: contain;*/
/*}*/

h1:after {
  content: "";
  display: block;
  margin: 0.2em auto 0;
  width: 6rem;
  height: 2px;
}

h2 {
  padding-left: 0.4em;
  font-size: 2em;
  border-left: 0.4em solid var(--title-color);
  border-bottom: 1px solid var(--title-color);
  border-bottom: 2px solid var(--title-color);

  background: url('file:///C://Users//a7810//AppData//Roaming//Typora/themes/H2.png') no-repeat right top;
  background-size: contain;
  
}
h3 {
  font-size: 1.5em;
  border-left: 0.4em solid var(--title-color);
  border-bottom: 1px solid var(--title-color);
  border-bottom: 2px solid var(--title-color);

  background: url('file:///C://Users//a7810//AppData//Roaming//Typora/themes/H3.png') no-repeat right top;
  background-size: contain;
}
h4 {
  font-size: 1.4em;
  border-left: 0.4em solid var(--title-color);
  border-bottom: 1px solid var(--title-color);
  border-bottom: 2px solid var(--title-color);
  background: url('file:///C://Users//a7810//AppData//Roaming//Typora/themes/H4.png') no-repeat right top;
  background-size: contain;
}
h5 {
  font-size: 1.2em;
  border-left: 0.4em solid var(--title-color);
  border-bottom: 1px solid var(--title-color);
  border-bottom: 2px solid var(--title-color);
  background: url('file:///C://Users//a7810//AppData//Roaming//Typora/themes/H5.png') no-repeat right top;
}
h6 {
  font-size: 1.1em;
  border-left: 0.4em solid var(--title-color);
  border-bottom: 1px solid var(--title-color);
  border-bottom: 2px solid var(--title-color);
  background: url('file:///C://Users//a7810//AppData//Roaming//Typora/themes/H6.png') no-repeat right top;
}
h7 {
  font-size: 1.1em;
  border-left: 0.4em solid var(--title-color);
  border-bottom: 1px solid var(--title-color);
  border-bottom: 2px solid var(--title-color);
  background: url('file:///C://Users//a7810//AppData//Roaming//Typora/themes/H4.png') no-repeat right top;
}

p,
ul,
ol,
dl,
table {
  margin: 0.8em 0;
}

ul{
  margin-left: 10px;
}

/* horizontal rule */
hr {
  margin: 1.5em auto;
  border-top: 1px solid var(--border);
}

/* 列表 */
li > ol,
li > ul {
  margin: 0 0;
}

li p.first {
  display: inline-block;
}

ul,
ol {
  padding-left: 2rem;
}

ul:first-child,
ol:first-child {
  margin-top: 0;
}

ul:last-child,
ol:last-child {
  margin-bottom: 0;
}

#write ol li,
ul li {
  padding-left: 0.1rem;
}


/* 表格 */
table {
  margin-bottom: 1.25rem;
}
table th,
table td {
  padding: 8px;
  line-height: 1.25rem;
  vertical-align: middle;
  border: 1px solid #ddd;
}
table th {
  font-weight: bold;
}
table thead th {
  vertical-align: middle;
}
table tr:nth-child(2n),
thead {
  background-color: #fcfcfc;
}

/* 粗体 */
#write strong {
  padding: 0 2px;
  font-weight: bold;
}

/* inline code */
#write code,
tt {
  padding: 20px 4px;
  border-radius: 0.3rem;
  font-family: var(--monospace);
  font-size: 0.9rem;
  color: var(--code-color);
  background-color: #f4f2f9;
  margin: 0 2px;
}

#write .md-footnote {
  color: var(--code-color);
  background-color: #f4f2f9;
}

/* highlight. */
#write mark {
  background-color: #f9f2f4;
  border-radius: 0.3rem;
  padding: 2px 4px;
  margin: 0 2px;
  color: #c7254e;
}

#write del {
  padding: 1px 2px;
}

.md-task-list-item > input {
  margin-left: -1.3em;
}

#write pre.md-meta-block {
  padding: 1rem;
  font-size: 85%;
  line-height: 1.45;
  background-color: #f7f7f7;
  border: 0;
  border-radius: 3px;
  color: #777777;
  margin-top: 0 !important;
}

.mathjax-block > .code-tooltip {
  bottom: 0.375rem;
}

/* 图片 */
.md-image > .md-meta {
  border-radius: 3px;
  font-family: var(--monospace);
  padding: 2px 0 0 4px;
  font-size: 0.9em;
  color: inherit;
}
/* 图片靠左显示 */
/* p .md-image:only-child {
  width: auto;
  text-align: left;
  margin-left: 2rem;
} */

/* 写![shadow-...]() 显示图片阴影 */
img[alt|="shadow"] {
  box-shadow: var(--shadow);
}

#write a.md-toc-inner {
  line-height: 1.6;
  white-space: pre-line;
  border-bottom: none;
  font-size: 0.9rem;
}

header,
.context-menu,
.megamenu-content,
footer {
  font-family: var(--base-font);
}

.file-node-content:hover .file-node-icon,
.file-node-content:hover .file-node-open-state {
  visibility: visible;
}

.md-lang {
  color: #b4654d;
}

.html-for-mac .context-menu {
  --item-hover-bg-color: #e6f0fe;
}

/*行内代码风格*/

/*
.md-fences,
code,
tt {
  
  margin: 0 0.2em;
  padding: 0 0.3em;
  background: #263238;
  font-family: 'TimesNewRoman';
  font-size: 18px;
  color: #e9eded;
}


  .cm-s-inner.CodeMirror {
	  background: url('file:///C://Users//a7810//AppData//Roaming//Typora/themes/RGBCircle.svg') no-repeat left top;
	  background-size: 20px 60px;
  background-color: #263238;
  color: rgba(233, 237, 237, 1);
  }
  .cm-s-inner .CodeMirror-gutters {
  background: #263238;
  color: rgb(83,127,126);
  border: none;
  }
  */
  
  .cm-s-inner .CodeMirror-guttermarker, .cm-s-inner .CodeMirror-guttermarker-subtle, .cm-s-inner .CodeMirror-linenumber { color: rgb(83,127,126); }
  .cm-s-inner .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }
  .cm-s-inner div.CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }
  .cm-s-inner.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
  .cm-s-inner .CodeMirror-line::selection, .cm-s-inner .CodeMirror-line > span::selection, .cm-s-inner .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
  .cm-s-inner .CodeMirror-line::-moz-selection, .cm-s-inner .CodeMirror-line > span::-moz-selection, .cm-s-inner .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }

  .cm-s-inner .CodeMirror-activeline-background { background: rgba(0, 0, 0, 0); }
  .cm-s-inner .cm-keyword { color: rgba(199, 146, 234, 1); }
  .cm-s-inner .cm-operator { color: rgba(233, 237, 237, 1); }
  .cm-s-inner .cm-variable-2 { color: #80CBC4; }
  .cm-s-inner .cm-variable-3, .cm-s-inner .cm-type { color: #82B1FF; }
  .cm-s-inner .cm-builtin { color: #DECB6B; }
  .cm-s-inner .cm-atom { color: #F77669; }
  .cm-s-inner .cm-number { color: #F77669; }
  .cm-s-inner .cm-def { color: rgba(233, 237, 237, 1); }
  .cm-s-inner .cm-string { color: #C3E88D; }
  .cm-s-inner .cm-string-2 { color: #80CBC4; }
  .cm-s-inner .cm-comment { color: #546E7A; }
  .cm-s-inner .cm-variable { color: #82B1FF; }
  .cm-s-inner .cm-tag { color: #80CBC4; }
  .cm-s-inner .cm-meta { color: #80CBC4; }
  .cm-s-inner .cm-attribute { color: #FFCB6B; }
  .cm-s-inner .cm-property { color: #80CBAE; }
  .cm-s-inner .cm-qualifier { color: #DECB6B; }
  .cm-s-inner .cm-variable-3, .cm-s-inner .cm-type { color: #DECB6B; }
  .cm-s-inner .cm-tag { color: rgba(255, 83, 112, 1); }
  .cm-s-inner .cm-error {
    color: #80CBAE;
  }
  .cm-s-inner .CodeMirror-matchingbracket {
  text-decoration: underline;
  color: white !important;
  }

  /* 代码块主题 */
  .md-fences {

    border: 5px solid #263238;
    border-radius: 5px;
    border-radius-color:#lightskyblue;
    background-color: #263238;
    background: url('file:///C://Users//a7810//AppData//Roaming//Typora/themes/RGBCircle.svg') #263238 no-repeat top left;
    background-size:60px 15px;

  font-family: 'TimesNewRoman';
  font-size: 18px;
  color: #e9eded;
  margin: 15px auto;
  text-shadow: none;

  }

.CodeMirror-lines{
  margin-top: 20px;
  margin-left: 3px;
  /*border-top: 50px solid lightskyblue;*/
  /*border-left: 50px solid lightskyblue;*/
  /*border-radius: 8px;*/
}

.CodeMirror-gutters{
  margin-top: 20px;
  background: url('file:///C://Users//a7810//AppData//Roaming//Typora/themes/aba.png') #263238 no-repeat top left;
}
  .md-fences .code-tooltip {
  background-color: #263238;
  }

  .cm-s-typora-default {
  background-color: #263238;
  color: rgba(233, 237, 237, 1);
  }
  .cm-s-typora-default .CodeMirror-gutters {
  background: #263238;
  color: rgb(83,127,126);
  border: none;
  }
  .cm-s-typora-default .CodeMirror-guttermarker, .cm-s-typora-default .CodeMirror-guttermarker-subtle, .cm-s-typora-default .CodeMirror-linenumber { color: rgb(83,127,126); }
  .cm-s-typora-default .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }
  .cm-s-typora-default div.CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }
  .cm-s-typora-default.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
  .cm-s-typora-default .CodeMirror-line::selection, .cm-s-typora-default .CodeMirror-line > span::selection, .cm-s-typora-default .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
  .cm-s-typora-default .CodeMirror-line::-moz-selection, .cm-s-typora-default .CodeMirror-line > span::-moz-selection, .cm-s-typora-default .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }

  .cm-s-typora-default .CodeMirror-activeline-background { background: rgba(0, 0, 0, 0); }
  .cm-s-typora-default .cm-keyword { color: rgba(199, 146, 234, 1); }
  .cm-s-typora-default .cm-operator { color: rgba(233, 237, 237, 1); }
  .cm-s-typora-default .cm-variable-2 { color: #80CBC4; }
  .cm-s-typora-default .cm-variable-3 { color: #82B1FF; }
  .cm-s-typora-default .cm-builtin { color: #DECB6B; }
  .cm-s-typora-default .cm-atom { color: #F77669; }
  .cm-s-typora-default .cm-number { color: #F77669; }
  .cm-s-typora-default .cm-def { color: rgba(233, 237, 237, 1); }
  .cm-s-typora-default .cm-string { color: #C3E88D; }
  .cm-s-typora-default .cm-string-2 { color: #80CBC4; }
  .cm-s-typora-default .cm-comment { color: #7faa7e; }
  .cm-s-typora-default .cm-variable { color: #82B1FF; }
  .cm-s-typora-default .cm-tag { color: #80CBC4; }
  .cm-s-typora-default .cm-meta { color: #80CBC4; }
  .cm-s-typora-default .cm-attribute { color: #FFCB6B; }
  .cm-s-typora-default .cm-property { color: #80CBAE; }
  .cm-s-typora-default .cm-qualifier { color: #DECB6B; }
  .cm-s-typora-default .cm-variable-3 { color: #DECB6B; }
  .cm-s-typora-default .cm-tag { color: rgba(255, 83, 112, 1); }
  .cm-s-typora-default .cm-error {
  color: rgba(255, 255, 255, 1.0);
  background-color: #EC5F67;
  }
  .cm-s-typora-default .CodeMirror-matchingbracket {
  text-decoration: underline;
  color: white !important;
  }

  /**apply to code fences with plan text**/

  .code-tooltip {
  background-color: #263238;
    background: url('file:///C://Users//a7810//AppData//Roaming//Typora/themes/aba.png') #263238 no-repeat top left;
  }
.CodeMirror div.CodeMirror-cursor {
  border-left: 1px solid #e4629a;
}

/*代码注释颜色*/
.cm-s-inner span.cm-comment {
  font-size: 21px;
  /*color: #57A64A;*/
  color:#7fb80e;
  /*color:#8B008B;*/
}

#write code, tt {
  padding: 0px 4px;
  border-radius: 0.3rem;
  font-family: var(--monospace);
  font-size: 1rem;
  color: var(--code-color);
  background-color: #f4f2f9;
  margin: 0px 2px;
}




</style><title>README</title>
</head>
<body class='typora-export os-windows'><div class='typora-export-content'>
<div id='write'  class=''><h1 id='github520'><span>GitHub520</span></h1><h2 id='一介绍'><span>一、介绍</span></h2><p><span>对 GitHub 说&quot;爱&quot;太难了：访问慢、图片加载不出来。</span></p><p><em><span>注：</span></em><span> 本项目还处于测试阶段，仅在本机测试通过，如有问题欢迎提 </span><a href='https://github.com/521xueweihan/GitHub520/issues/new'><span>issues</span></a></p><hr /><p><span>本项目无需安装任何程序，通过修改本地 hosts 文件，试图解决：</span></p><ul><li><span>GitHub 访问速度慢的问题</span></li><li><span>GitHub 项目中的图片显示不出的问题</span></li></ul><p><span>花 5 分钟时间，让你&quot;爱&quot;上 GitHub。</span></p><h2 id='二使用方法'><span>二、使用方法</span></h2><h3 id='21-复制下面的内容'><span>2.1 复制下面的内容</span></h3><pre class="md-fences md-end-block md-fences-with-lineno ty-contain-cm modeLoaded" spellcheck="false" lang="bash" style="break-inside: unset;"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="bash"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 31.5px; left: 47px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 40px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><span><span>​</span>x</span></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style="text-rendering: auto;"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -40px; width: 40px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt CodeMirror-linenumber-show" style="left: 0px; width: 31px;">1</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment"># GitHub520 Host Start</span></span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">2</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">140</span>.82.112.25 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; alive.github.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">3</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">140</span>.82.112.25 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; live.github.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">4</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.154 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; github.githubassets.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">5</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">140</span>.82.112.21 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; central.github.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">6</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; desktop.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">7</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.153 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; assets-cdn.github.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">8</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; camo.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">9</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; github.map.fastly.net</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt CodeMirror-linenumber-show" style="left: 0px; width: 31px;">10</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">199</span>.232.69.194 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  github.global.ssl.fastly.net</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">11</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">140</span>.82.112.4 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  gist.github.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">12</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.153 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; github.io</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">13</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">140</span>.82.114.4 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  github.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">14</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">192</span>.0.66.2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  github.blog</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">15</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">140</span>.82.113.5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  api.github.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">16</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; raw.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">17</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; user-images.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">18</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; favicons.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">19</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avatars5.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt CodeMirror-linenumber-show" style="left: 0px; width: 31px;">20</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avatars4.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">21</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avatars3.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">22</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avatars2.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">23</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avatars1.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">24</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avatars0.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">25</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avatars.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">26</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">140</span>.82.112.10 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; codeload.github.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">27</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">54</span>.231.200.129 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  github-cloud.s3.amazonaws.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">28</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">52</span>.217.33.196 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; github-com.s3.amazonaws.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">29</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">52</span>.216.93.147 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; github-production-release-asset-2e65be.s3.amazonaws.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt CodeMirror-linenumber-show" style="left: 0px; width: 31px;">30</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">52</span>.216.93.147 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; github-production-user-asset-6210df.s3.amazonaws.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">31</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">52</span>.217.207.33 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; github-production-repository-file-5c1aeb.s3.amazonaws.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">32</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.153 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; githubstatus.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">33</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">64</span>.71.144.211 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; github.community</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">34</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">23</span>.100.27.125 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; github.dev</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">35</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">140</span>.82.113.21 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; collector.github.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">36</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">13</span>.107.42.16 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  pipelines.actions.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">37</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; media.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">38</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cloud.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">39</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-number">185</span>.199.108.133 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; objects.githubusercontent.com</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt CodeMirror-linenumber-show" style="left: 0px; width: 31px;">40</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">41</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">42</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment"># Update time: 2022-06-04T00:06:08+08:00</span></span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">43</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment"># Update url: https://raw.hellogithub.com/hosts</span></span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">44</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment"># Star me: https://github.com/521xueweihan/GitHub520</span></span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 31px;">45</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment"># GitHub520 Host End</span></span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -40px;"><div class="CodeMirror-linenumber CodeMirror-gutter-elt CodeMirror-linenumber-show" style="left: 0px; width: 31px;">46</div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre></div></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 2345px;"></div><div class="CodeMirror-gutters" style="height: 2345px;"><div class="CodeMirror-gutter CodeMirror-linenumbers" style="width: 39px;"></div></div></div></div></pre><p><span>上面内容会自动定时更新，保证最新有效。数据更新时间：2022-06-04T00:06:08+08:00（内容无变动不会更新）</span></p><ul><li><span>文件：</span><code>https://raw.hellogithub.com/hosts</code></li><li><span>JSON：</span><code>https://raw.hellogithub.com/hosts.json</code></li></ul><h3 id='21-手动方式'><span>2.1 手动方式</span></h3><h4 id='211-修改-hosts-文件'><span>2.1.1 修改 hosts 文件</span></h4><p><span>hosts 文件在每个系统的位置不一，详情如下：</span></p><ul><li><span>Windows 系统：</span><code>C:\Windows\System32\drivers\etc\hosts</code></li><li><span>Linux 系统：</span><code>/etc/hosts</code></li><li><span>Mac（苹果电脑）系统：</span><code>/etc/hosts</code></li><li><span>Android（安卓）系统：</span><code>/system/etc/hosts</code></li><li><span>iPhone（iOS）系统：</span><code>/etc/hosts</code></li></ul><p><span>修改方法，把第一步的内容复制到文本末尾：</span></p><ol start='' ><li><span>Windows 使用记事本。</span></li><li><span>Linux、Mac 使用 Root 权限：</span><code>sudo vi /etc/hosts</code><span>。</span></li><li><span>iPhone、iPad 须越狱、Android 必须要 root。</span></li></ol><h4 id='212-激活生效'><span>2.1.2 激活生效</span></h4><p><span>大部分情况下是直接生效，如未生效可尝试下面的办法，刷新 DNS：</span></p><ol start='' ><li><span>Windows：在 CMD 窗口输入：</span><code>ipconfig /flushdns</code></li><li><span>Linux 命令：</span><code>sudo nscd restart</code><span>，如报错则须安装：</span><code>sudo apt install nscd</code><span> 或 </span><code>sudo /etc/init.d/nscd restart</code></li><li><span>Mac 命令：</span><code>sudo killall -HUP mDNSResponder</code></li></ol><p><strong><span>Tips：</span></strong><span> 上述方法无效可以尝试重启机器。</span></p><h3 id='22-自动方式'><span>2.2 自动方式</span></h3><p><strong><span>Tip</span></strong><span>：推荐 </span><a href='https://github.com/oldj/SwitchHosts'><span>SwitchHosts</span></a><span> 工具管理 hosts</span></p><p><span>以 SwitchHosts 为例，看一下怎么使用的，配置参考下面：</span></p><ul><li><span>Title: 随意</span></li><li><span>Type: </span><code>Remote</code></li><li><span>URL: </span><code>https://raw.hellogithub.com/hosts</code></li><li><span>Auto Refresh: 最好选 </span><code>1 hour</code></li></ul><p><span>如图：</span></p><p><img src="./img/switch-hosts.png" referrerpolicy="no-referrer"></p><p><span>这样每次 hosts 有更新都能及时进行更新，免去手动更新。</span></p><h3 id='23-one-liner-适用于类unix系统'><span>2.3 One-liner (适用于类Unix系统)</span></h3><p><code>sed -i &quot;/# GitHub520 Host Start/Q&quot; /etc/hosts &amp;&amp; curl https://raw.hellogithub.com/hosts &gt;&gt; /etc/hosts</code>
<span>自动更新</span><code>/etc/hosts</code><span>文件，可以添加到cron定时执行。使用前确保Github520内容在该文件最后部分。</span></p><h3 id='24-adguard-home-用户自动方式）'><span>2.4 AdGuard Home 用户（自动方式）</span></h3><p><span>在 </span><strong><span>过滤器&gt;DNS 封锁清单&gt;添加阻止列表&gt;添加一个自定义列表</span></strong><span>，配置如下：</span></p><ul><li><span>名称: 随意</span></li><li><span>URL: </span><code>https://raw.hellogithub.com/hosts</code><span>（和上面 SwitchHosts 使用的一样）</span></li></ul><p><span>如图：</span></p><p><img src="./img/AdGuard-rules.png" referrerpolicy="no-referrer"></p><p><span>更新间隔在 </span><strong><span>设置&gt;常规设置&gt;过滤器更新间隔（设置一小时一次即可）</span></strong><span>，记得勾选上 </span><strong><span>使用过滤器和 Hosts 文件以拦截指定域名</span></strong></p><p><img src="./img/AdGuard-rules2.png" referrerpolicy="no-referrer"></p><p><strong><span>Tip</span></strong><span>：不要添加在 </span><strong><span>DNS 允许清单</span></strong><span> 内，只能添加在 </span><strong><span>DNS 封锁清单</span></strong><span> 才管用。另外，AdGuard for Mac、AdGuard for Windows、AdGuard for Android、AdGuard for IOS 等等 </span><strong><span>AdGuard 家族软件</span></strong><span> 添加方法均类似。</span></p><h3 id='25-chrome-插件方式'><span>2.5 Chrome 插件方式</span></h3><p><a href='https://github.com/gauseen/faster-hosts'><span>FasterHosts</span></a><span> 是个 Chrome 插件，主要原理是拦截浏览器的某些请求，将 </span><code>domain</code><span> 替换成访问速度较快的那个。hosts 资源来自 </span><a href='https://github.com/521xueweihan/GitHub520'><span>GitHub520</span></a><span>，每 1 小时更新一次。</span></p><blockquote><ol start='' ><li><span>下载 </span><a href='https://github.com/gauseen/faster-hosts/archive/master.zip'><span>FasterHosts</span></a><span> 然后解压，找到 </span><code>extension</code><span> 子目录</span></li><li><span>打开 Chrome，输入: </span><code>chrome://extensions/</code></li><li><span>打开「开发者模式」</span></li><li><span>选择「加载已解压的扩展程序」，然后定位到刚才解压的文件夹里面的 </span><code>extension</code><span> 目录，确定</span></li><li><span>这就安装好了，关闭「开发者模式」</span></li></ol></blockquote><h2 id='三效果对比'><span>三、效果对比</span></h2><p><span>之前的样子：</span></p><p><img src="./img/old.png" referrerpolicy="no-referrer"></p><p><span>修改完 hosts 的样子：</span></p><p><img src="./img/new.png" referrerpolicy="no-referrer"></p><h2 id='todo'><span>TODO</span></h2><ul><li class='md-task-list-item task-list-item task-list-done' ><input type='checkbox' checked/><p><span>定时自动更新 hosts 内容</span></p></li><li class='md-task-list-item task-list-item task-list-done' ><input type='checkbox' checked/><p><span>hosts 内容无变动不会更新</span></p></li><li class='md-task-list-item task-list-item task-list-not-done' ><input type='checkbox' /><p><span>寻到最优 IP 解析结果</span></p></li></ul><h2 id='声明'><span>声明</span></h2><p><a rel="license" href="https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh"><img alt="知识共享许可协议" style="border-width: 0" src="https://licensebuttons.net/l/by-nc-nd/4.0/88x31.png"></a><br><span>本作品采用 </span><a rel="license" href="https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh"><span>署名-非商业性使用-禁止演绎 4.0 国际</span></a><span> 进行许可。</span></p></div></div>
</body>
</html>